<?php
class QuinielasController extends AppController {
	var $name = 'Quinielas';
	var $uses = array('Quiniela','Pronostico','Partido');
	var $helpers = array('Form', 'Html'); 
	var $aux;
	var $newQuinielaId;
	var $temporada;
	
	function index($temporada, $jornada){
		$userID = 3;
		$this->set('temporada',2009);
		if ($jornada == 'actual')
		{
			$this->set('datos',$this->buscaQuinielas($temporada,'actual',50));
			$this->set('seleccionada',$this->buscaQuinielas($temporada,'actual',1));
		}
		else
		{
			$this->set('datos',$this->buscaQuinielas($temporada,$jornada,50));
			$this->set('seleccionada',$this->buscaQuinielas($temporada,$jornada,1));
		}
	}
	
	function ver($temporada, $jornada){

		$this->set('seleccionada',$this->buscaQuinielas($temporada,$jornada,1));
	}
	
	function borrar($temporada,$jornada) {
		$userID = 3;
		$aux = $this->buscaQuinielas($temporada,$jornada,1);
		$this->Quiniela->del($aux['Quiniela']['id'], true);
		$this->redirect('/quinielas/index/'.$temporada."/actual");
	}
	
	function add($temporada){
		$equipos = array("R. Madrid","Barcelona","Sevilla","Villarreal","Malaga",
			     "Deportivo","Atletico","Valencia","Valladolid","Almeria",
			     "Athletic","Racing","Sporting","Recreativo","Getafe",
			     "Getafe","Mallorca","Osasuna","Numancia","Espanyol",
			     "Xerez","Tenerife","Hercules","Rayo","Zaragoza",
			     "Castellon","Salamanca","Huesca","R. Sociedad","Levante",
			     "Gimnastic","Girona","Albacete","Murcia","Elche",
			     "Celta","Las Palmas","Cordoba","Alaves","Eibar",
			     "Alicante","Sevilla At");
		$this->set('equipos',$equipos);
		$this->set('temporada',$temporada);
		$this->set('jornada',$this->buscaJornada());
		
		if (!empty($this->data))
		{
			$jornada = $this->buscaJornada();	
			$inicio = implode('-',$this->data['Quiniela']['inicio']);
			$bloqueo = implode('-',$this->data['Quiniela']['bloqueo']);
			$final = implode('-',$this->data['Quiniela']['final']);
			if(!$this->Quiniela->save(array('temporada' => $temporada,'jornada' => $jornada, 'inicio' => $inicio, 'bloqueo' => $bloqueo, 'final' => $final)))
			{
				$this->flash('Error al guardar Quiniela!!','/quinielas/index/'.$temporada."/actual");
			}
			else
			{
				if(!$this->guardaPartidos($this->data['Partido'], $this->Quiniela->id, $equipos))
				{
					$this->Partido->deleteAll(array('quiniela_id' => $this->Quiniela->id));
					$this->Quiniela->del($this->Quiniela->id);
					$this->flash('Fallo al guardar Quiniela. Borrando...','/quinielas/index/'.$temporada."/actual");
				}
				else
				{
					$this->flash('Quiniela guardada!','/quinielas/index/'.$temporada."/".$jornada);
				}	
			}
			
		}
	}
	
	function guardaPartidos($partidos, $quiniela_id, $equipos){
		
		for ( $i = 1 ; $i <= 15 ; $i ++)
		{
			$aux = array( 'orden' => $i,
				     'equipoa' => $equipos[$partidos[$i-1]['equipoa']],
				     'equipob' => $equipos[$partidos[$i-1]['equipob']],
				     'quiniela_id' => $quiniela_id);
			if(!$this->Partido->save($aux))
			{
				echo "ERROR";
				return -1;
			}
			$this->Partido->create();
		}
		return 1;
	}
	
	function buscaQuinielas($temporada, $jornada, $rango) {
		$userID = 3;
		//$fecha = date("Y-m-d",time());
		$fecha = "2009-04-15";
		
		if($jornada == 'actual')
		{
			$aux = $this->Quiniela->find('first',array('conditions' => array('Quiniela.inicio <=' => $fecha, 'Quiniela.final >=' => $fecha),'order' => 'Quiniela.jornada ASC','limit' => 1,'recursive' => 0));
			$aux = $aux['Quiniela']['jornada'];
			
			if ($rango == 1)
			{
				return $this->Quiniela->find('first',array('conditions' => array('Quiniela.temporada'=> $temporada,'Quiniela.jornada >' => $aux-$rango,'Quiniela.jornada <' => $aux+$rango ),'limit' => 1,'recursive' => 1));
			}
			elseif($aux > $rango)
			{
				return $this->Quiniela->find('all',array('conditions' => array('Quiniela.temporada'=> $temporada,'Quiniela.jornada >' => $aux-$rango,'Quiniela.jornada <' => $aux+$rango ),'order' => 'Quiniela.jornada ASC','limit' => 10,'recursive' => 1));
			}
			else
			{
				return $this->Quiniela->find('all',array('conditions' => array('Quiniela.temporada'=> $temporada,'Quiniela.jornada >' => 0,'Quiniela.jornada <' => $aux+$rango ),'order' => 'Quiniela.jornada ASC','limit' => 60,'recursive' => 1));	
			}
			
		}
		else
		{
			if ($rango == 1)
			{
				return $this->Quiniela->find('first',array('conditions' => array('Quiniela.temporada'=> $temporada,'Quiniela.jornada >' => $jornada-$rango,'Quiniela.jornada <' => $jornada+$rango ),'limit' => 1,'recursive' => 1));
			}
			else
			{
				return $this->Quiniela->find('all',array('conditions' => array('Quiniela.temporada'=> $temporada,'Quiniela.jornada >' => $jornada-$rango,'Quiniela.jornada <' => $jornada+$rango ),'order' => 'Quiniela.jornada ASC','limit' => 60,'recursive' => 1));
			}
		}
		
	}
	
	function buscaPronosticos($temporada, $jornada, $user) {
		
		return $this->Pronostico->find('first',array('conditions' => array('Quiniela.temporada' => $temporada,'Quiniela.jornada' => $jornada,'Pronostico.usuario_id' => $user),'limit' => 1,'recursive' => 0));
	}
	
	function buscaDuplicados() {
		return $this->Pronostico->find('first',array('conditions' => array('Pronostico.quiniela_id'=> $this->data['quiniela_id'],'Pronostico.usuario_id'=> $this->data['usuario_id']),'limit' => 1,'recursive' => 1));
	}
	
	function buscaJornada(){
		$temporada = 2009;
		$aux = $this->Quiniela->find('first',array('conditions' => array('Quiniela.temporada'=> $temporada),'order' => 'Quiniela.jornada DESC','limit' => 1,'recursive' => 1));
		
		if ($aux['Quiniela']['jornada'])
		{
			return $aux['Quiniela']['jornada']+1;
		}
		else
		{
			return 1;
		}
		
	}
}
?>